#ifndef _ODN_SCENE_SCENEELEMENT_H
#define _ODN_SCENE_SCENEELEMENT_H

//Engine headers
#include "odn_file_Reader.h"

namespace ouden
{
	namespace scene
	{
		
		//Forward declaration of ODN_Scene class so we can use it's pointer 
		class ODN_Scene;
		
		//Main scene element class from which all scene elements are derived
		class ODN_SceneElement : public ouden::file::ODN_LoadableObject
		{
		
		public:
		
		    //Constructor and destructor
		    ODN_SceneElement();
			
			virtual ~ODN_SceneElement()							{}
		
			//Main functions
			virtual bool Update() = 0;  //TODO: Check if need TimeStep 
			virtual bool Draw() = 0; 
			
			//Vairable access functions
			bool isAlive()				{ return alive; }
			
		protected:
			
			//TODO: Work out how to do rendering 
			
			//Property variables 
			bool alive;			//Is the scene element still alive?

		
		};
		
	} //namespace scene
} //namespace ouden

#endif //_ODN_SCENE_SCENEELEMENT_H
